//配置axios的全局基本路径
axios.defaults.baseURL='http://localhost:8080'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios

// axios的前置拦截器
axios.interceptors.request.use(config=>{
    let token = localStorage.getItem("token")
    if(token){
        config.headers["token"] = token;
    }
    return config;
},error => {
    Promise.reject(error)
})
// axios的后置拦截器
axios.interceptors.response.use(config=>{
    let data = config.data;
    if(!data.success && "noLogin"===data.message)
    {
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        location.href = "/login.html"
    }
    return config;
},error => {
    Promise.reject(error)
})

// 自己写的静态资源拦截器
let url = location.href;
if(url.indexOf("login.html") === -1
    && url.indexOf("index.html") === -1
    && url.indexOf("register.html") === -1
    && url.indexOf("binder.html") === -1
    && url.indexOf("callback.html") === -1){
    // 说明需要阻止
    let logininfo = localStorage.getItem("logininfo")
    if (!logininfo) {
        location.href = "/login.html"
    }
}

/**
 * 解析url获取参数对象
 * @param url
 * @returns {{}}
 */
function parseUrlParams2Obj(url){
    //获取请求参数
    let paramStr = url.substring(url.indexOf("?")+1);
    let paramStrs = paramStr.split("&");
    let paramObj = {};
    for(let i=0;i<paramStrs.length;i++){
        let paramName = paramStrs[i].split("=")[0];
        let paramValue = paramStrs[i].split("=")[1];
        paramObj[paramName] = paramValue;
    }
    return paramObj;
}